.foo > .bar
  content: 'foo'

.foo ~ .bar
  content: 'bar'

.foo + .bar
  content: 'baz'

.foo .bar
  content: 'qux'


// No space
.foo>.bar
  content: 'foo'

.foo~.bar
  content: 'bar'

.foo+.bar
  content: 'baz'

// Ignore
.foo.bar
  content: 'qux'


// Single interpolation
.foo > #{$bar}
  content: 'foo'

.foo ~ #{$bar}
  content: 'bar'

.foo + #{$bar}
  content: 'baz'

.foo #{$bar}
  content: 'qux'


// Double interpolation
#{$foo} > #{$bar}
  content: 'foo'

#{$foo} ~ #{$bar}
  content: 'bar'

#{$foo} + #{$bar}
  content: 'baz'

#{$foo} #{$bar}
  content: 'qux'


// Double nested interpolation
#{$foo} >
  #{$bar}
    content: 'foo'

#{$foo} ~
  #{$bar}
    content: 'bar'

#{$foo} +
  #{$bar}
    content: 'baz'

#{$foo}
  #{$bar}
    content: 'qux'


// Parent selector
&__bar
  content: 'bar'

.foo >
  .bar &
    content: 'foo'

.foo >
  &.bar
    content: 'foo'


// Sassy nested combinators
.foo >
  .bar
    content: 'baz'

.foo ~
  .bar
    content: 'baz'

.foo +
  .bar
    content: 'baz'

.foo
  .bar
    content: 'baz'


// Ignore
li:nth-child(2n + 1)
  content: 'foo'

li::first-letter:nth-child(-2n + 1)
  content: 'foo'

// Ignore
.bar &
  content: 'bar'
